package com.project.mapper;

import com.project.bean.LogBean;
import com.project.bean.UserBean;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface IUserMapper {
    /**
     * 根据输入的账号密码判断是否登录，同时添加日志
     *
     * @param userName 用户名
     * @param pwd      密码
     * @return 登录用户
     */
    public UserBean login(@Param("userName") String userName, @Param("pwd") String pwd);

    /**
     * 添加日志
     */
    public void addJournal(LogBean journalBean);

    /**
     * 根据id修改密码
     *
     * @param id     用户id
     * @param newPwd 新密码
     */
    public void updatePwd(@Param("id") Integer id, @Param("newPwd") String newPwd);

    /**
     * 添加用户
     *
     * @param userBean 用户对象
     */
    public void add(UserBean userBean);

    /**
     * 统计新的用户名在数据库的数量
     * @param userName 用户名
     * @return 统计的数量
     */
    public int countUserName(String userName);

    /**
     * 根据用户id删除用户
     *
     * @param id 用户id
     */
    public void del(Integer id);

    /**
     * 按编号查询用户信息
     *
     * @param id 用户id
     * @return 用户对象
     */
    public UserBean findById(Integer id);

    /**
     * 根据用户id修改用户等级
     *
     * @param id       用户id
     * @param newGrade 新等级
     */
    public void updateGrade(@Param("id") Integer id,@Param("newGrade") String newGrade);

    /**
     * 动态查询用户信息
     *
     * @param grade 用户等级
     * @return 用户集合
     */
    public List<UserBean> findByItem(String grade);
}
